define('app/common/expression', function(require, exports, module) {
    return Expression = {
        //表情图片路径
        imgSrc: __CONFIG__.root + '/scripts/image/expression/',
        //表情数据包
        images: {
            'weixiao': '微笑',
            'piezui': '撇嘴',
            'se': '色',
            'fadai': '发呆',
            'deyi': '得意',
            'liulei': '流泪',
            'haixiou': '害羞',
            'bizui': '闭嘴',
            'shui': '睡',
            'daku': '大哭',
            'ganga': '尴尬',
            'fanu': '发怒',
            'tongku': '痛哭',
            'tiaopi': '调皮',
            'ciya': '呲牙',
            'jingya': '惊讶',
            'nanguo': '难过',
            'ku': '酷',
            'lenghan': '冷汗',
            'zhuakuang': '抓狂',
            'tu': '吐',
            'touxiao': '偷笑',
            'keai': '可爱',
            'baiyan': '白眼',
            'aoman': '傲慢',
            'jie': '饥饿',
            'kun': '困',
            'jingkong': '惊恐',
            'liuhan': '流汗',
            'hanxiao': '憨笑',
            'dabing': '大兵',
            'fendou': '奋斗',
            'zhouma': '咒骂',
            'yiwen': '疑问',
            'xu': '嘘',
            'yun': '晕',
            'zhemo': '折磨',
            'shuai': '衰',
            'kulou': '骷髅',
            'qiaoda': '敲打',
            'zaijian': '再见',
            'cahan': '擦汗',
            'koubi': '抠鼻',
            'guzhang': '鼓掌',
            'qiudale': '糗大了',
            'huaixiao': '坏笑',
            'zuohengheng': '左哼哼',
            'youhengheng': '右哼哼',
            'haqian': '哈欠',
            'bishi': '鄙视',
            'weiqu': '委屈',
            'kuaikule': '快哭了',
            'yinxian': '阴险',
            'qinqin': '亲亲',
            'xia': '吓',
            'kelian': '可怜',
            'caidao': '菜刀',
            'xigua': '西瓜',
            'pijiu': '啤酒',
            'lanqiu': '篮球',
            'pingbang': '乒乓',
            'kafei': '咖啡',
            'fan': '饭',
            'zhutou': '猪头',
            'meigui': '玫瑰',
            'diaoxie': '凋谢',
            'shiai': '示爱',
            'aixin': '爱心',
            'xinsui': '心碎',
            'dangao': '蛋糕',
            'shandian': '闪电',
            'zhadan': '炸弹',
            'dao': '刀',
            'zuqiu': '足球',
            'piaochong': '瓢虫',
            'bianbian': '便便',
            'yueliang': '月亮',
            'taiyang': '太阳',
            'liwu': '礼物',
            'yongbao': '拥抱',
            'qiang': '强',
            'ruo': '弱',
            'woshou': '握手',
            'shengli': '胜利',
            'baoquan': '抱拳',
            'gouyin': '勾引',
            'quantou': '拳头',
            'chajing': '差劲',
            'aini': '爱你',
            'no': 'NO',
            'ok': 'OK'
        },
        //表情面板
        _createPanel: function() {
            var _html = '<div class="w-expression">';
            _html += '<b class="angle">&nbsp;</b>';
            _html += '<ul class="list">';
            for (var i in this.images) {
                _html += '<li><b class="expression-' + i + '" title="' + this.images[i] + '">' + this.images[i] + '</b></li>';
            }
            _html += '</ul>';
            _html += '</div>';
            _html = $(_html);
            _html.click(function() {
                return false;
            }).find('li b').click(function() {
                _html.hide();
                $.isFunction(Expression.onSelected) && Expression.onSelected.call($(this), '[\\' + $(this).text() + ']');
            });
            $(document).click(function() {
                _html.hide();
            });
            return _html;
        },
        //打开面板
        open: function() {
            if (!this._createPanel.isAppend) {
                this.panel = this._createPanel();
                this.panel.appendTo($('body'));
                this._createPanel.isAppend = true;
            }
            this.panel.show();
            return this;
        },
        //关闭面板
        close: function() {
            this.panel && this.panel.hide();
            return this;
        },
        //解析数据
        resolve: function(string) {
            for (var i in this.images) {
                var g = new RegExp('\\u005B\\u005C' + this.images[i] + '\\u005D', 'g');
                string = string.replace(g, '<img src="' + this.imgSrc + i + '.gif" alt="' + this.images[i] + '" title="' + this.images[i] + '" />');
            }
            return string;
        }
    }
});
